<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui"
	xmlns:c="http://java.sun.com/jsp/jstl/core">

<ui:composition  template="template.xhtml" >
	
	<ui:define name="principal">
		
		<h:form id="frmAgenda">
		
   			<p:growl id="message" 
			         showDetail="true" 
			         globalOnly="true"
			         sticky="false"
			         life="1200" />		
			<h:panelGrid columns="5">
				<p:column>
					<p:outputLabel value="EM ABERTO" 
					               styleClass="agendaNaoPago" />	
					<p:spacer width="50px" height="0px" />
				</p:column>
				<p:column>
					<p:outputLabel value="PAGO" 
					               styleClass="agendaPago" />	
					<p:spacer width="50px" height="0px" />
				</p:column>
				<p:column>
					<p:outputLabel value="PENDENTE PAGAMENTO" 
					               styleClass="agendaPendentePago" />	
					<p:spacer width="50px" height="0px" />
				</p:column>
				<p:column>
					<p:outputLabel value="* ENCAIXE DE HORÁRIO" />	
					<p:spacer width="50px" height="0px" />
				</p:column>				
				<p:calendar id="dataDoDia"
							value="#{agendaMB.dataDoDia}"
							pattern="dd/MM/yyyy"
							locale="pt"
							timeZone="#{agendaMB.timeZone}"
							showOn="button" >
					<p:ajax event="dateSelect" listener="#{agendaMB.mudaData()}" update="frmAgenda"/>					
				</p:calendar>
			</h:panelGrid>         	
			
		    <p:dataTable id="dtHorarios"
		                 var="reg" 
		                 scrollable="true"
		                 scrollHeight="700"
		    			 value="#{agendaMB.listaHorario}"
		    			 rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? 'linha-par' : 'linha-impar'}" rowIndexVar="rowIx">

		    	<p:column headerText="Horário"
		    	          styleClass="colunaHora" > 
			        <h:outputText value="#{reg.hora}" styleClass="horarios">
						<f:convertDateTime timeZone="#{agendaMB.timeZone}" 
						                   pattern="HH:mm"/>
			        </h:outputText>
		    	</p:column>		
	        	        		    			
		    	<p:columns id="colH#{reg}F#{func}"
		    	           var="func" 
		    	           value="#{agendaMB.listaFuncionario}"
		    	           headerText="#{func.apelido}"	>
					<ui:repeat var="listaAgenda" 
					           value="#{agendaMB.mostraAgenda(reg.idHorario, func.idFuncionario)}"
					           varStatus="status" >
			        	<p:commandLink styleClass="#{listaAgenda.estilo}" 
			        	               value="#{listaAgenda.descricao}"
			        	               action="#{agendaMB.marcaHorario(reg.idHorario, func.idFuncionario, listaAgenda.idCliente)}"
			        	               update=":frmMarcaHorario, :frmMarcaHorario:btnPagto"
			        	               oncomplete="PF('dlgMarcaHoraio').show();" >
			        	</p:commandLink>
			        	<br />		        	
					</ui:repeat>  
		        	<p:commandLink styleClass="linkMarcaHorario"
		        	               value="Marcar"
		        	               action="#{agendaMB.marcaHorario(reg.idHorario, func.idFuncionario, 0)}"
		        	               update=":frmMarcaHorario, :frmMarcaHorario:btnPagto"
		        	               oncomplete="PF('dlgMarcaHoraio').show();" >
		        	</p:commandLink>					
		    	</p:columns>	
		    </p:dataTable>
		    	
		</h:form>
		
		<h:form id="frmMarcaHorario">
			<p:dialog id="dlgMarcaHorario" 
			          widgetVar="dlgMarcaHoraio">
			        <h:panelGrid columns="2" 
			                     columnClasses="pgFuncHoraColuna1, pgFuncHoraColuna2">
						<p:outputLabel value="Funcionário"
						               styleClass="azulBold"  />
						<p:outputLabel value="Hora"
						               styleClass="azulBold" />

						<p:outputLabel value="#{agendaMB.funcionario.nome}" 
						               styleClass="pretoBold"/>
						<p:outputLabel value="#{agendaMB.horario.hora}"
						               styleClass="pretoBold"  >
							<f:convertDateTime timeZone="#{agendaMB.timeZone}" 
							                   pattern="HH:mm"/>
						</p:outputLabel>
			        </h:panelGrid>
					<br />
			        <h:panelGrid columns="1">
						<p:outputLabel value="Cliente" />
						<p:column>
							<p:inputText id="cliente"
							             size="50"
							             value="#{agendaMB.agenda.cliente.nome}"
							             autocomplete="false" >
							</p:inputText>	
							<p:spacer width="5" />						
							<p:commandLink update=":frmPesquisaCliente"
										   oncomplete="PF('dlgPesquisaCliente').show()">
								<h:graphicImage library="imagens" 
												name="localizar.png" />
							</p:commandLink>
							<p:spacer width="5" />
							<p:commandLink update="frmMarcaHorario:cliente">
								<h:graphicImage library="imagens" 
												name="excluir.png" />
								<f:setPropertyActionListener target="#{agendaMB.agenda.cliente.nome}" value="" />
							</p:commandLink>							
						</p:column>
						
						<p:outputLabel value="Serviço" />
						<p:column>
							<p:inputText id="servico"
							             size="50"
							             value="#{agendaMB.agenda.servico.descServico}"
							             autocomplete="false" >
							</p:inputText>	
							<p:spacer width="5" />						
							<p:commandLink update=":frmPesquisaServico"
										   oncomplete="PF('dlgPesquisaServico').show()">
								<h:graphicImage library="imagens" 
												name="localizar.png" />
							</p:commandLink>
							<p:spacer width="5" />
							<p:commandLink update="frmMarcaHorario:servico, frmMarcaHorario:valor">
								<h:graphicImage library="imagens" 
												name="excluir.png" />
								<f:setPropertyActionListener target="#{agendaMB.agenda.servico.descServico}" value="" />
								<f:setPropertyActionListener target="#{agendaMB.agenda.valor}" value="" />
							</p:commandLink>							
						</p:column>						
						
						<p:outputLabel value="Observação" />
						<p:inputText value="#{agendaMB.agenda.observacao}" />
						
						<p:outputLabel value="Valor" />
						<p:inputText id="valor"
						             value="#{agendaMB.agenda.valor}">
							<f:convertNumber pattern="###,##0.00"/>
						</p:inputText>
						
						<p:column>
							<p:selectBooleanCheckbox value="#{agendaMB.agenda.isEncaixe}" />
							<p:spacer width="5" />
							<p:outputLabel value="Encaixe?" />
						</p:column>
						
						<p:spacer width="5" />
						<p:outputLabel id="tempoServico"
							           styleClass="tempoServico"
						               value="Duração do Serviço: #{agendaMB.agenda.servico.tempoAtendimentoHora}:#{agendaMB.agenda.servico.tempoAtendimentoMinuto}h" />	
						
					</h:panelGrid>
					
					<h:panelGrid columns="1"
				      	         styleClass="pgBotoes" >
						<p:column >
							<p:commandButton value="Salvar"
									         action="#{agendaMB.salvaAgenda()}"
							 				 update=":frmAgenda, frmMarcaHorario" 
							 				 oncomplete="PF('dlgPesquisaCliente').hide();" >
								<p:resetInput target="frmMarcaHorario" /> 
							</p:commandButton>
							<p:spacer width="50" height="0"/>
							<p:commandButton value="Excluir"
									         action="#{agendaMB.excluiAgenda()}"
							 				 update=":frmAgenda, :frmPesquisaCliente" 
							 				 oncomplete="PF('dlgMarcaHoraio').hide();"
							 				 disabled="#{agendaMB.desabilitaPagamento(agendaMB.agenda.idAgenda)}" />
							<p:spacer width="50" height="0"/>
							<p:commandButton value="Fechar"
							 				 action="#{agendaMB.inicializa()}"
							 				 immediate="true"
							 				 oncomplete="PF('dlgMarcaHoraio').hide(); PF('dlgPesquisaCliente').hide();" >
							 	<p:resetInput target="frmMarcaHorario" /> 
							</p:commandButton>
							<p:spacer width="50" height="0"/> 
							<p:commandButton id="btnPagto"
							                 value="Pagamento" 
							                 action="/pages/protected/pagamento.jsf"
							                 disabled="#{agendaMB.desabilitaPagamento(agendaMB.agenda.idAgenda)}">
								<f:param name="idCliente"  
								         value="#{agendaMB.agenda.cliente.idCliente}" />											
							</p:commandButton> 								 
						</p:column>
					</h:panelGrid>					
			</p:dialog>
		</h:form>
		
		<h:form id="frmPesquisaCliente">
			<p:dialog id="dlgPesquisaCliente" 
			          widgetVar="dlgPesquisaCliente" >
				<p:inputText id="cliente"
				             size="50"
				             value="#{agendaMB.agenda.cliente.nome}" />				          
			    <p:spacer height="5" />
			    <p:dataTable value="#{agendaMB.listaClienteSelecionados}"
			                 var="reg" 
			                 selectionMode="single"
			                 selection="#{agendaMB.agenda.cliente}"
			                 rowKey="#{reg.nome}"
			                 style="width: 600px;">
			        <p:ajax event="rowSelect"
			        		oncomplete="PF('dlgPesquisaCliente').hide(); PF('dlgMarcaHoraio').show();" 
                            update=":frmMarcaHorario:cliente" />
			    	<p:column headerText="Cliente">
			    		<p:outputLabel value="#{reg.nome}" />
			    	</p:column>
			    </p:dataTable>
			</p:dialog>
		</h:form>	
		
		<h:form id="frmPesquisaServico">
			<p:dialog id="dlgPesquisaServico" 
			          widgetVar="dlgPesquisaServico" >
				<p:inputText id="servico"
				             size="50"
				             value="#{agendaMB.agenda.servico.descServico}" />				          
			    <p:spacer height="5" />
			    <p:dataTable value="#{agendaMB.listaServicoSelecionados}"
			                 var="reg" 
			                 selectionMode="single"
			                 selection="#{agendaMB.agenda.servico}"
			                 rowKey="#{reg.descServico}"
			                 style="width: 600px;">
			        <p:ajax event="rowSelect"
			        		oncomplete="PF('dlgPesquisaServico').hide(); PF('dlgMarcaHoraio').show();" 
			        		listener="#{agendaMB.carregaValorServico()}"
			        		async="false"
                            update=":frmMarcaHorario:servico, :frmMarcaHorario:valor" />
			    	<p:column headerText="Serviço">
			    		<p:outputLabel value="#{reg.descServico}" />
			    	</p:column>
			    	<p:column headerText="Sigla">
			    		<p:outputLabel value="#{reg.siglaServico}" />
			    	</p:column>
			    	<p:column headerText="Valor" styleClass="colunaValor">
			    		<p:outputLabel value="#{reg.valorVenda}" >
			    			<f:convertNumber pattern="###,##0.00"/>
			    		</p:outputLabel>
			    	</p:column>
			    </p:dataTable>
			</p:dialog>
		</h:form>	
		
		
		
	</ui:define>
	
</ui:composition>
</html>